我想知道是否有人知道如何设置shell中显示的文本的颜色.我注意到'ls'在将信息打印到屏幕上时(在我的Linux机器上)使用了几种不同的颜色,想知道我是否可以在Python中利用它.
使用Curses或ANSI转义序列.在开始喷射转义序列之前,您应该检查stdout是否为tty.你可以这样做sys.stdout.isatty()
.这是从我的项目中提取的函数,使用ANSI转义序列根据状态打印输出为红色或绿色:
def hilite(string, status, bold): attr = [] if status: # green attr.append('32') else: # red attr.append('31') if bold: attr.append('1') return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
我刚才描述了很受欢迎的库克林特.除了对终端输出着色之外,还有更多功能.
顺便说一句,它支持MAC,Linux和Windows终端.
以下是使用它的示例:
安装(在Ubuntu中)
pip install clint
为某些字符串添加颜色
colored.red('red string')
示例:用于颜色输出(django命令样式)
from django.core.management.base import BaseCommand from clint.textui import colored class Command(BaseCommand): args = '' help = 'Starting my own django long process. Use ' + colored.red('+c') + ' to break.' def handle(self, *args, **options): self.stdout.write('Starting the process (Use ' + colored.red(' +c') + ' to break)..') # ... Rest of my command code ...
所有主要颜色代码均在https://www.siafoo.net/snippet/88上提供